        /* 题目：消失的数字
        数组nums包含从0到n的所有整数，但其中缺了一个。
        请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗？
        解法1:
        数组的规律为：
1、数组大小为n
2、为0到n的有序数字，但缺了一个
3、1到n的等差数列的总和，减去当前数组元素的总和，即为缺的值class Solution {
    public int missingNumber(int[] nums) {
        int n = nums.length;
       int total = (1+n) * n / 2;
       int sum = 0;
       for(int  i = 0;i < n;i++){
           sum += nums[i];
       }
       return total - sum;
    }
}
解法2:
数组 nums\textit{nums}nums 中有 nnn 个数，在这 nnn 个数的后面添加从 000 到 nnn 的每个整数，
则添加了 n+1n+1n+1 个整数，共有 2n+12n+12n+1 个整数。

在 2n+12n+12n+1 个整数中，消失的数字只在后面 n+1n+1n+1 个整数中出现一次，
其余的数字在前面 nnn 个整数中（即数组中）和后面 n+1n+1n+1 个整数中各出现一次，即其余的数字都出现了两次。

根据出现的次数的奇偶性，可以使用按位异或运算得到消失的数字。
按位异或运算 ⊕\oplus⊕ 满足交换律和结合律，且对任意整数 xxx 都满足 x⊕x=0x \oplus x = 0x⊕x=0
 和 x⊕0=xx \oplus 0 = xx⊕0=x。

由于上述 2n+12n+12n+1 个整数中，消失的数字出现了一次，其余的数字都出现了两次，
因此对上述 2n+12n+12n+1 个整数进行按位异或运算，结果即为消失的数字。
class Solution {
    public int missingNumber(int[] nums) {
       int xor = 0;
       int n = nums.length;
       for(int i = 0;i<n;i++){
           xor ^= nums[i];
       }
       for(int i = 0;i <= n;i++){
           xor ^= i;
       }
       return xor;
    }
}
轮转数组
给定一个整数数组 nums，将数组中的元素向右轮转 k 个位置，其中 k 是非负数。
class Solution {
    public void rotate(int[] nums, int k) {
     int n = nums.length;
     int[] newarr = new int[n];
     for(int i = 0;i<n;i++){
         newarr[(i+k) % n] = nums[i];
     }
    System.arraycopy(newarr, 0, nums, 0, n);
    }
}






*/



public class test {
}
